package lanqiao._02算法训练.page04;

import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;

/**
 * @author 挚爱之夕
 * @version 1.0
 * @implSpec 问题描述
 * 　　有n辆自行车依次来到停车棚，除了第一辆自行车外，每辆自行车都会恰好停放在已经在停车棚里的某辆自行车的左边或右边。
 * (e.g.停车棚里已经有3辆自行车，从左到右编号为：3,5,1。现在编号为2的第4辆自行车要停在5号自行车的左边，
 * 所以现在停车棚里的自行车编号是：3,2,5,1)。给定n辆自行车的停放情况，按顺序输出最后停车棚里的自行车编号。
 * 输入格式
 * 　　第一行一个整数n。
 * 　　第二行一个整数x。表示第一辆自行车的编号。
 * 　　以下n-1行，每行3个整数x,y,z。
 * 　　z=0时，表示编号为x的自行车恰停放在编号为y的自行车的左边
 * 　　z=1时，表示编号为x的自行车恰停放在编号为y的自行车的右边
 * 输出格式
 * 　　从左到右输出停车棚里的自行车编号
 * 样例输入
 * 4
 * 3
 * 1 3 1
 * 2 1 0
 * 5 2 1
 * 样例输出
 * 3 2 5 1
 * 数据规模和约定
 * 　　n<=100000
 * 　　自行车编号为不超过100000的正整数。
 * @since 2023 - 01 - 03 - 21:31
 */
public class _35自行车的停放 {
}

class Main_35 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int no = sc.nextInt();
        int x, y, z, index;
        LinkedList<Integer> list = new LinkedList<>();
        list.add(no);
        for(int i = 0; i < n - 1; i++){
            x = sc.nextInt();
            y = sc.nextInt();
            z = sc.nextInt();
            index = find(y, list);
            if(z == 0){
                list.add(index, x);
            }else{
                list.add(index + 1, x);
            }
        }
        for (Integer integer : list) {
            System.out.print(integer + " ");
        }
    }
    static int find(int ele, LinkedList<Integer> list){
        for(int i = 0; i < list.size(); i++){
            if(ele == list.get(i)) return i;
        }
        return -1;
    }
}
